package com.xch.pojo;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

public class MedicineExample {
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    public MedicineExample() {
        oredCriteria = new ArrayList<Criteria>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<Criterion>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        public Criteria andIdIsNull() {
            addCriterion("id is null");
            return (Criteria) this;
        }

        public Criteria andIdIsNotNull() {
            addCriterion("id is not null");
            return (Criteria) this;
        }

        public Criteria andIdEqualTo(Integer value) {
            addCriterion("id =", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotEqualTo(Integer value) {
            addCriterion("id <>", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdGreaterThan(Integer value) {
            addCriterion("id >", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("id >=", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdLessThan(Integer value) {
            addCriterion("id <", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdLessThanOrEqualTo(Integer value) {
            addCriterion("id <=", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdIn(List<Integer> values) {
            addCriterion("id in", values, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotIn(List<Integer> values) {
            addCriterion("id not in", values, "id");
            return (Criteria) this;
        }

        public Criteria andIdBetween(Integer value1, Integer value2) {
            addCriterion("id between", value1, value2, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotBetween(Integer value1, Integer value2) {
            addCriterion("id not between", value1, value2, "id");
            return (Criteria) this;
        }

        public Criteria andImageUrlIsNull() {
            addCriterion("imageUrl is null");
            return (Criteria) this;
        }

        public Criteria andImageUrlIsNotNull() {
            addCriterion("imageUrl is not null");
            return (Criteria) this;
        }

        public Criteria andImageUrlEqualTo(String value) {
            addCriterion("imageUrl =", value, "imageUrl");
            return (Criteria) this;
        }

        public Criteria andImageUrlNotEqualTo(String value) {
            addCriterion("imageUrl <>", value, "imageUrl");
            return (Criteria) this;
        }

        public Criteria andImageUrlGreaterThan(String value) {
            addCriterion("imageUrl >", value, "imageUrl");
            return (Criteria) this;
        }

        public Criteria andImageUrlGreaterThanOrEqualTo(String value) {
            addCriterion("imageUrl >=", value, "imageUrl");
            return (Criteria) this;
        }

        public Criteria andImageUrlLessThan(String value) {
            addCriterion("imageUrl <", value, "imageUrl");
            return (Criteria) this;
        }

        public Criteria andImageUrlLessThanOrEqualTo(String value) {
            addCriterion("imageUrl <=", value, "imageUrl");
            return (Criteria) this;
        }

        public Criteria andImageUrlLike(String value) {
            addCriterion("imageUrl like", value, "imageUrl");
            return (Criteria) this;
        }

        public Criteria andImageUrlNotLike(String value) {
            addCriterion("imageUrl not like", value, "imageUrl");
            return (Criteria) this;
        }

        public Criteria andImageUrlIn(List<String> values) {
            addCriterion("imageUrl in", values, "imageUrl");
            return (Criteria) this;
        }

        public Criteria andImageUrlNotIn(List<String> values) {
            addCriterion("imageUrl not in", values, "imageUrl");
            return (Criteria) this;
        }

        public Criteria andImageUrlBetween(String value1, String value2) {
            addCriterion("imageUrl between", value1, value2, "imageUrl");
            return (Criteria) this;
        }

        public Criteria andImageUrlNotBetween(String value1, String value2) {
            addCriterion("imageUrl not between", value1, value2, "imageUrl");
            return (Criteria) this;
        }

        public Criteria andCostIsNull() {
            addCriterion("cost is null");
            return (Criteria) this;
        }

        public Criteria andCostIsNotNull() {
            addCriterion("cost is not null");
            return (Criteria) this;
        }

        public Criteria andCostEqualTo(Double value) {
            addCriterion("cost =", value, "cost");
            return (Criteria) this;
        }

        public Criteria andCostNotEqualTo(Double value) {
            addCriterion("cost <>", value, "cost");
            return (Criteria) this;
        }

        public Criteria andCostGreaterThan(Double value) {
            addCriterion("cost >", value, "cost");
            return (Criteria) this;
        }

        public Criteria andCostGreaterThanOrEqualTo(Double value) {
            addCriterion("cost >=", value, "cost");
            return (Criteria) this;
        }

        public Criteria andCostLessThan(Double value) {
            addCriterion("cost <", value, "cost");
            return (Criteria) this;
        }

        public Criteria andCostLessThanOrEqualTo(Double value) {
            addCriterion("cost <=", value, "cost");
            return (Criteria) this;
        }

        public Criteria andCostIn(List<Double> values) {
            addCriterion("cost in", values, "cost");
            return (Criteria) this;
        }

        public Criteria andCostNotIn(List<Double> values) {
            addCriterion("cost not in", values, "cost");
            return (Criteria) this;
        }

        public Criteria andCostBetween(Double value1, Double value2) {
            addCriterion("cost between", value1, value2, "cost");
            return (Criteria) this;
        }

        public Criteria andCostNotBetween(Double value1, Double value2) {
            addCriterion("cost not between", value1, value2, "cost");
            return (Criteria) this;
        }

        public Criteria andPriceIsNull() {
            addCriterion("price is null");
            return (Criteria) this;
        }

        public Criteria andPriceIsNotNull() {
            addCriterion("price is not null");
            return (Criteria) this;
        }

        public Criteria andPriceEqualTo(Double value) {
            addCriterion("price =", value, "price");
            return (Criteria) this;
        }

        public Criteria andPriceNotEqualTo(Double value) {
            addCriterion("price <>", value, "price");
            return (Criteria) this;
        }

        public Criteria andPriceGreaterThan(Double value) {
            addCriterion("price >", value, "price");
            return (Criteria) this;
        }

        public Criteria andPriceGreaterThanOrEqualTo(Double value) {
            addCriterion("price >=", value, "price");
            return (Criteria) this;
        }

        public Criteria andPriceLessThan(Double value) {
            addCriterion("price <", value, "price");
            return (Criteria) this;
        }

        public Criteria andPriceLessThanOrEqualTo(Double value) {
            addCriterion("price <=", value, "price");
            return (Criteria) this;
        }

        public Criteria andPriceIn(List<Double> values) {
            addCriterion("price in", values, "price");
            return (Criteria) this;
        }

        public Criteria andPriceNotIn(List<Double> values) {
            addCriterion("price not in", values, "price");
            return (Criteria) this;
        }

        public Criteria andPriceBetween(Double value1, Double value2) {
            addCriterion("price between", value1, value2, "price");
            return (Criteria) this;
        }

        public Criteria andPriceNotBetween(Double value1, Double value2) {
            addCriterion("price not between", value1, value2, "price");
            return (Criteria) this;
        }

        public Criteria andMedicineNameIsNull() {
            addCriterion("medicineName is null");
            return (Criteria) this;
        }

        public Criteria andMedicineNameIsNotNull() {
            addCriterion("medicineName is not null");
            return (Criteria) this;
        }

        public Criteria andMedicineNameEqualTo(String value) {
            addCriterion("medicineName =", value, "medicineName");
            return (Criteria) this;
        }

        public Criteria andMedicineNameNotEqualTo(String value) {
            addCriterion("medicineName <>", value, "medicineName");
            return (Criteria) this;
        }

        public Criteria andMedicineNameGreaterThan(String value) {
            addCriterion("medicineName >", value, "medicineName");
            return (Criteria) this;
        }

        public Criteria andMedicineNameGreaterThanOrEqualTo(String value) {
            addCriterion("medicineName >=", value, "medicineName");
            return (Criteria) this;
        }

        public Criteria andMedicineNameLessThan(String value) {
            addCriterion("medicineName <", value, "medicineName");
            return (Criteria) this;
        }

        public Criteria andMedicineNameLessThanOrEqualTo(String value) {
            addCriterion("medicineName <=", value, "medicineName");
            return (Criteria) this;
        }

        public Criteria andMedicineNameLike(String value) {
            addCriterion("medicineName like", value, "medicineName");
            return (Criteria) this;
        }

        public Criteria andMedicineNameNotLike(String value) {
            addCriterion("medicineName not like", value, "medicineName");
            return (Criteria) this;
        }

        public Criteria andMedicineNameIn(List<String> values) {
            addCriterion("medicineName in", values, "medicineName");
            return (Criteria) this;
        }

        public Criteria andMedicineNameNotIn(List<String> values) {
            addCriterion("medicineName not in", values, "medicineName");
            return (Criteria) this;
        }

        public Criteria andMedicineNameBetween(String value1, String value2) {
            addCriterion("medicineName between", value1, value2, "medicineName");
            return (Criteria) this;
        }

        public Criteria andMedicineNameNotBetween(String value1, String value2) {
            addCriterion("medicineName not between", value1, value2, "medicineName");
            return (Criteria) this;
        }

        public Criteria andMedicineTypeIsNull() {
            addCriterion("medicineType is null");
            return (Criteria) this;
        }

        public Criteria andMedicineTypeIsNotNull() {
            addCriterion("medicineType is not null");
            return (Criteria) this;
        }

        public Criteria andMedicineTypeEqualTo(Integer value) {
            addCriterion("medicineType =", value, "medicineType");
            return (Criteria) this;
        }

        public Criteria andMedicineTypeNotEqualTo(Integer value) {
            addCriterion("medicineType <>", value, "medicineType");
            return (Criteria) this;
        }

        public Criteria andMedicineTypeGreaterThan(Integer value) {
            addCriterion("medicineType >", value, "medicineType");
            return (Criteria) this;
        }

        public Criteria andMedicineTypeGreaterThanOrEqualTo(Integer value) {
            addCriterion("medicineType >=", value, "medicineType");
            return (Criteria) this;
        }

        public Criteria andMedicineTypeLessThan(Integer value) {
            addCriterion("medicineType <", value, "medicineType");
            return (Criteria) this;
        }

        public Criteria andMedicineTypeLessThanOrEqualTo(Integer value) {
            addCriterion("medicineType <=", value, "medicineType");
            return (Criteria) this;
        }

        public Criteria andMedicineTypeIn(List<Integer> values) {
            addCriterion("medicineType in", values, "medicineType");
            return (Criteria) this;
        }

        public Criteria andMedicineTypeNotIn(List<Integer> values) {
            addCriterion("medicineType not in", values, "medicineType");
            return (Criteria) this;
        }

        public Criteria andMedicineTypeBetween(Integer value1, Integer value2) {
            addCriterion("medicineType between", value1, value2, "medicineType");
            return (Criteria) this;
        }

        public Criteria andMedicineTypeNotBetween(Integer value1, Integer value2) {
            addCriterion("medicineType not between", value1, value2, "medicineType");
            return (Criteria) this;
        }

        public Criteria andSimpleRemarkIsNull() {
            addCriterion("simpleRemark is null");
            return (Criteria) this;
        }

        public Criteria andSimpleRemarkIsNotNull() {
            addCriterion("simpleRemark is not null");
            return (Criteria) this;
        }

        public Criteria andSimpleRemarkEqualTo(String value) {
            addCriterion("simpleRemark =", value, "simpleRemark");
            return (Criteria) this;
        }

        public Criteria andSimpleRemarkNotEqualTo(String value) {
            addCriterion("simpleRemark <>", value, "simpleRemark");
            return (Criteria) this;
        }

        public Criteria andSimpleRemarkGreaterThan(String value) {
            addCriterion("simpleRemark >", value, "simpleRemark");
            return (Criteria) this;
        }

        public Criteria andSimpleRemarkGreaterThanOrEqualTo(String value) {
            addCriterion("simpleRemark >=", value, "simpleRemark");
            return (Criteria) this;
        }

        public Criteria andSimpleRemarkLessThan(String value) {
            addCriterion("simpleRemark <", value, "simpleRemark");
            return (Criteria) this;
        }

        public Criteria andSimpleRemarkLessThanOrEqualTo(String value) {
            addCriterion("simpleRemark <=", value, "simpleRemark");
            return (Criteria) this;
        }

        public Criteria andSimpleRemarkLike(String value) {
            addCriterion("simpleRemark like", value, "simpleRemark");
            return (Criteria) this;
        }

        public Criteria andSimpleRemarkNotLike(String value) {
            addCriterion("simpleRemark not like", value, "simpleRemark");
            return (Criteria) this;
        }

        public Criteria andSimpleRemarkIn(List<String> values) {
            addCriterion("simpleRemark in", values, "simpleRemark");
            return (Criteria) this;
        }

        public Criteria andSimpleRemarkNotIn(List<String> values) {
            addCriterion("simpleRemark not in", values, "simpleRemark");
            return (Criteria) this;
        }

        public Criteria andSimpleRemarkBetween(String value1, String value2) {
            addCriterion("simpleRemark between", value1, value2, "simpleRemark");
            return (Criteria) this;
        }

        public Criteria andSimpleRemarkNotBetween(String value1, String value2) {
            addCriterion("simpleRemark not between", value1, value2, "simpleRemark");
            return (Criteria) this;
        }

        public Criteria andProduceDateIsNull() {
            addCriterion("produceDate is null");
            return (Criteria) this;
        }

        public Criteria andProduceDateIsNotNull() {
            addCriterion("produceDate is not null");
            return (Criteria) this;
        }

        public Criteria andProduceDateEqualTo(Date value) {
            addCriterion("produceDate =", value, "produceDate");
            return (Criteria) this;
        }

        public Criteria andProduceDateNotEqualTo(Date value) {
            addCriterion("produceDate <>", value, "produceDate");
            return (Criteria) this;
        }

        public Criteria andProduceDateGreaterThan(Date value) {
            addCriterion("produceDate >", value, "produceDate");
            return (Criteria) this;
        }

        public Criteria andProduceDateGreaterThanOrEqualTo(Date value) {
            addCriterion("produceDate >=", value, "produceDate");
            return (Criteria) this;
        }

        public Criteria andProduceDateLessThan(Date value) {
            addCriterion("produceDate <", value, "produceDate");
            return (Criteria) this;
        }

        public Criteria andProduceDateLessThanOrEqualTo(Date value) {
            addCriterion("produceDate <=", value, "produceDate");
            return (Criteria) this;
        }

        public Criteria andProduceDateIn(List<Date> values) {
            addCriterion("produceDate in", values, "produceDate");
            return (Criteria) this;
        }

        public Criteria andProduceDateNotIn(List<Date> values) {
            addCriterion("produceDate not in", values, "produceDate");
            return (Criteria) this;
        }

        public Criteria andProduceDateBetween(Date value1, Date value2) {
            addCriterion("produceDate between", value1, value2, "produceDate");
            return (Criteria) this;
        }

        public Criteria andProduceDateNotBetween(Date value1, Date value2) {
            addCriterion("produceDate not between", value1, value2, "produceDate");
            return (Criteria) this;
        }

        public Criteria andExpiredDateIsNull() {
            addCriterion("expiredDate is null");
            return (Criteria) this;
        }

        public Criteria andExpiredDateIsNotNull() {
            addCriterion("expiredDate is not null");
            return (Criteria) this;
        }

        public Criteria andExpiredDateEqualTo(Date value) {
            addCriterion("expiredDate =", value, "expiredDate");
            return (Criteria) this;
        }

        public Criteria andExpiredDateNotEqualTo(Date value) {
            addCriterion("expiredDate <>", value, "expiredDate");
            return (Criteria) this;
        }

        public Criteria andExpiredDateGreaterThan(Date value) {
            addCriterion("expiredDate >", value, "expiredDate");
            return (Criteria) this;
        }

        public Criteria andExpiredDateGreaterThanOrEqualTo(Date value) {
            addCriterion("expiredDate >=", value, "expiredDate");
            return (Criteria) this;
        }

        public Criteria andExpiredDateLessThan(Date value) {
            addCriterion("expiredDate <", value, "expiredDate");
            return (Criteria) this;
        }

        public Criteria andExpiredDateLessThanOrEqualTo(Date value) {
            addCriterion("expiredDate <=", value, "expiredDate");
            return (Criteria) this;
        }

        public Criteria andExpiredDateIn(List<Date> values) {
            addCriterion("expiredDate in", values, "expiredDate");
            return (Criteria) this;
        }

        public Criteria andExpiredDateNotIn(List<Date> values) {
            addCriterion("expiredDate not in", values, "expiredDate");
            return (Criteria) this;
        }

        public Criteria andExpiredDateBetween(Date value1, Date value2) {
            addCriterion("expiredDate between", value1, value2, "expiredDate");
            return (Criteria) this;
        }

        public Criteria andExpiredDateNotBetween(Date value1, Date value2) {
            addCriterion("expiredDate not between", value1, value2, "expiredDate");
            return (Criteria) this;
        }

        public Criteria andExpirationDayIsNull() {
            addCriterion("expirationDay is null");
            return (Criteria) this;
        }

        public Criteria andExpirationDayIsNotNull() {
            addCriterion("expirationDay is not null");
            return (Criteria) this;
        }

        public Criteria andExpirationDayEqualTo(Integer value) {
            addCriterion("expirationDay =", value, "expirationDay");
            return (Criteria) this;
        }

        public Criteria andExpirationDayNotEqualTo(Integer value) {
            addCriterion("expirationDay <>", value, "expirationDay");
            return (Criteria) this;
        }

        public Criteria andExpirationDayGreaterThan(Integer value) {
            addCriterion("expirationDay >", value, "expirationDay");
            return (Criteria) this;
        }

        public Criteria andExpirationDayGreaterThanOrEqualTo(Integer value) {
            addCriterion("expirationDay >=", value, "expirationDay");
            return (Criteria) this;
        }

        public Criteria andExpirationDayLessThan(Integer value) {
            addCriterion("expirationDay <", value, "expirationDay");
            return (Criteria) this;
        }

        public Criteria andExpirationDayLessThanOrEqualTo(Integer value) {
            addCriterion("expirationDay <=", value, "expirationDay");
            return (Criteria) this;
        }

        public Criteria andExpirationDayIn(List<Integer> values) {
            addCriterion("expirationDay in", values, "expirationDay");
            return (Criteria) this;
        }

        public Criteria andExpirationDayNotIn(List<Integer> values) {
            addCriterion("expirationDay not in", values, "expirationDay");
            return (Criteria) this;
        }

        public Criteria andExpirationDayBetween(Integer value1, Integer value2) {
            addCriterion("expirationDay between", value1, value2, "expirationDay");
            return (Criteria) this;
        }

        public Criteria andExpirationDayNotBetween(Integer value1, Integer value2) {
            addCriterion("expirationDay not between", value1, value2, "expirationDay");
            return (Criteria) this;
        }

        public Criteria andDetailRemarkIsNull() {
            addCriterion("detailRemark is null");
            return (Criteria) this;
        }

        public Criteria andDetailRemarkIsNotNull() {
            addCriterion("detailRemark is not null");
            return (Criteria) this;
        }

        public Criteria andDetailRemarkEqualTo(String value) {
            addCriterion("detailRemark =", value, "detailRemark");
            return (Criteria) this;
        }

        public Criteria andDetailRemarkNotEqualTo(String value) {
            addCriterion("detailRemark <>", value, "detailRemark");
            return (Criteria) this;
        }

        public Criteria andDetailRemarkGreaterThan(String value) {
            addCriterion("detailRemark >", value, "detailRemark");
            return (Criteria) this;
        }

        public Criteria andDetailRemarkGreaterThanOrEqualTo(String value) {
            addCriterion("detailRemark >=", value, "detailRemark");
            return (Criteria) this;
        }

        public Criteria andDetailRemarkLessThan(String value) {
            addCriterion("detailRemark <", value, "detailRemark");
            return (Criteria) this;
        }

        public Criteria andDetailRemarkLessThanOrEqualTo(String value) {
            addCriterion("detailRemark <=", value, "detailRemark");
            return (Criteria) this;
        }

        public Criteria andDetailRemarkLike(String value) {
            addCriterion("detailRemark like", value, "detailRemark");
            return (Criteria) this;
        }

        public Criteria andDetailRemarkNotLike(String value) {
            addCriterion("detailRemark not like", value, "detailRemark");
            return (Criteria) this;
        }

        public Criteria andDetailRemarkIn(List<String> values) {
            addCriterion("detailRemark in", values, "detailRemark");
            return (Criteria) this;
        }

        public Criteria andDetailRemarkNotIn(List<String> values) {
            addCriterion("detailRemark not in", values, "detailRemark");
            return (Criteria) this;
        }

        public Criteria andDetailRemarkBetween(String value1, String value2) {
            addCriterion("detailRemark between", value1, value2, "detailRemark");
            return (Criteria) this;
        }

        public Criteria andDetailRemarkNotBetween(String value1, String value2) {
            addCriterion("detailRemark not between", value1, value2, "detailRemark");
            return (Criteria) this;
        }

        public Criteria andFactoryIsNull() {
            addCriterion("factory is null");
            return (Criteria) this;
        }

        public Criteria andFactoryIsNotNull() {
            addCriterion("factory is not null");
            return (Criteria) this;
        }

        public Criteria andFactoryEqualTo(String value) {
            addCriterion("factory =", value, "factory");
            return (Criteria) this;
        }

        public Criteria andFactoryNotEqualTo(String value) {
            addCriterion("factory <>", value, "factory");
            return (Criteria) this;
        }

        public Criteria andFactoryGreaterThan(String value) {
            addCriterion("factory >", value, "factory");
            return (Criteria) this;
        }

        public Criteria andFactoryGreaterThanOrEqualTo(String value) {
            addCriterion("factory >=", value, "factory");
            return (Criteria) this;
        }

        public Criteria andFactoryLessThan(String value) {
            addCriterion("factory <", value, "factory");
            return (Criteria) this;
        }

        public Criteria andFactoryLessThanOrEqualTo(String value) {
            addCriterion("factory <=", value, "factory");
            return (Criteria) this;
        }

        public Criteria andFactoryLike(String value) {
            addCriterion("factory like", value, "factory");
            return (Criteria) this;
        }

        public Criteria andFactoryNotLike(String value) {
            addCriterion("factory not like", value, "factory");
            return (Criteria) this;
        }

        public Criteria andFactoryIn(List<String> values) {
            addCriterion("factory in", values, "factory");
            return (Criteria) this;
        }

        public Criteria andFactoryNotIn(List<String> values) {
            addCriterion("factory not in", values, "factory");
            return (Criteria) this;
        }

        public Criteria andFactoryBetween(String value1, String value2) {
            addCriterion("factory between", value1, value2, "factory");
            return (Criteria) this;
        }

        public Criteria andFactoryNotBetween(String value1, String value2) {
            addCriterion("factory not between", value1, value2, "factory");
            return (Criteria) this;
        }

        public Criteria andGuideIsNull() {
            addCriterion("guide is null");
            return (Criteria) this;
        }

        public Criteria andGuideIsNotNull() {
            addCriterion("guide is not null");
            return (Criteria) this;
        }

        public Criteria andGuideEqualTo(String value) {
            addCriterion("guide =", value, "guide");
            return (Criteria) this;
        }

        public Criteria andGuideNotEqualTo(String value) {
            addCriterion("guide <>", value, "guide");
            return (Criteria) this;
        }

        public Criteria andGuideGreaterThan(String value) {
            addCriterion("guide >", value, "guide");
            return (Criteria) this;
        }

        public Criteria andGuideGreaterThanOrEqualTo(String value) {
            addCriterion("guide >=", value, "guide");
            return (Criteria) this;
        }

        public Criteria andGuideLessThan(String value) {
            addCriterion("guide <", value, "guide");
            return (Criteria) this;
        }

        public Criteria andGuideLessThanOrEqualTo(String value) {
            addCriterion("guide <=", value, "guide");
            return (Criteria) this;
        }

        public Criteria andGuideLike(String value) {
            addCriterion("guide like", value, "guide");
            return (Criteria) this;
        }

        public Criteria andGuideNotLike(String value) {
            addCriterion("guide not like", value, "guide");
            return (Criteria) this;
        }

        public Criteria andGuideIn(List<String> values) {
            addCriterion("guide in", values, "guide");
            return (Criteria) this;
        }

        public Criteria andGuideNotIn(List<String> values) {
            addCriterion("guide not in", values, "guide");
            return (Criteria) this;
        }

        public Criteria andGuideBetween(String value1, String value2) {
            addCriterion("guide between", value1, value2, "guide");
            return (Criteria) this;
        }

        public Criteria andGuideNotBetween(String value1, String value2) {
            addCriterion("guide not between", value1, value2, "guide");
            return (Criteria) this;
        }

        public Criteria andPurchasesNumIsNull() {
            addCriterion("purchasesNum is null");
            return (Criteria) this;
        }

        public Criteria andPurchasesNumIsNotNull() {
            addCriterion("purchasesNum is not null");
            return (Criteria) this;
        }

        public Criteria andPurchasesNumEqualTo(Integer value) {
            addCriterion("purchasesNum =", value, "purchasesNum");
            return (Criteria) this;
        }

        public Criteria andPurchasesNumNotEqualTo(Integer value) {
            addCriterion("purchasesNum <>", value, "purchasesNum");
            return (Criteria) this;
        }

        public Criteria andPurchasesNumGreaterThan(Integer value) {
            addCriterion("purchasesNum >", value, "purchasesNum");
            return (Criteria) this;
        }

        public Criteria andPurchasesNumGreaterThanOrEqualTo(Integer value) {
            addCriterion("purchasesNum >=", value, "purchasesNum");
            return (Criteria) this;
        }

        public Criteria andPurchasesNumLessThan(Integer value) {
            addCriterion("purchasesNum <", value, "purchasesNum");
            return (Criteria) this;
        }

        public Criteria andPurchasesNumLessThanOrEqualTo(Integer value) {
            addCriterion("purchasesNum <=", value, "purchasesNum");
            return (Criteria) this;
        }

        public Criteria andPurchasesNumIn(List<Integer> values) {
            addCriterion("purchasesNum in", values, "purchasesNum");
            return (Criteria) this;
        }

        public Criteria andPurchasesNumNotIn(List<Integer> values) {
            addCriterion("purchasesNum not in", values, "purchasesNum");
            return (Criteria) this;
        }

        public Criteria andPurchasesNumBetween(Integer value1, Integer value2) {
            addCriterion("purchasesNum between", value1, value2, "purchasesNum");
            return (Criteria) this;
        }

        public Criteria andPurchasesNumNotBetween(Integer value1, Integer value2) {
            addCriterion("purchasesNum not between", value1, value2, "purchasesNum");
            return (Criteria) this;
        }

        public Criteria andStockNumIsNull() {
            addCriterion("stockNum is null");
            return (Criteria) this;
        }

        public Criteria andStockNumIsNotNull() {
            addCriterion("stockNum is not null");
            return (Criteria) this;
        }

        public Criteria andStockNumEqualTo(Integer value) {
            addCriterion("stockNum =", value, "stockNum");
            return (Criteria) this;
        }

        public Criteria andStockNumNotEqualTo(Integer value) {
            addCriterion("stockNum <>", value, "stockNum");
            return (Criteria) this;
        }

        public Criteria andStockNumGreaterThan(Integer value) {
            addCriterion("stockNum >", value, "stockNum");
            return (Criteria) this;
        }

        public Criteria andStockNumGreaterThanOrEqualTo(Integer value) {
            addCriterion("stockNum >=", value, "stockNum");
            return (Criteria) this;
        }

        public Criteria andStockNumLessThan(Integer value) {
            addCriterion("stockNum <", value, "stockNum");
            return (Criteria) this;
        }

        public Criteria andStockNumLessThanOrEqualTo(Integer value) {
            addCriterion("stockNum <=", value, "stockNum");
            return (Criteria) this;
        }

        public Criteria andStockNumIn(List<Integer> values) {
            addCriterion("stockNum in", values, "stockNum");
            return (Criteria) this;
        }

        public Criteria andStockNumNotIn(List<Integer> values) {
            addCriterion("stockNum not in", values, "stockNum");
            return (Criteria) this;
        }

        public Criteria andStockNumBetween(Integer value1, Integer value2) {
            addCriterion("stockNum between", value1, value2, "stockNum");
            return (Criteria) this;
        }

        public Criteria andStockNumNotBetween(Integer value1, Integer value2) {
            addCriterion("stockNum not between", value1, value2, "stockNum");
            return (Criteria) this;
        }

        public Criteria andStateIsNull() {
            addCriterion("state is null");
            return (Criteria) this;
        }

        public Criteria andStateIsNotNull() {
            addCriterion("state is not null");
            return (Criteria) this;
        }

        public Criteria andStateEqualTo(Integer value) {
            addCriterion("state =", value, "state");
            return (Criteria) this;
        }

        public Criteria andStateNotEqualTo(Integer value) {
            addCriterion("state <>", value, "state");
            return (Criteria) this;
        }

        public Criteria andStateGreaterThan(Integer value) {
            addCriterion("state >", value, "state");
            return (Criteria) this;
        }

        public Criteria andStateGreaterThanOrEqualTo(Integer value) {
            addCriterion("state >=", value, "state");
            return (Criteria) this;
        }

        public Criteria andStateLessThan(Integer value) {
            addCriterion("state <", value, "state");
            return (Criteria) this;
        }

        public Criteria andStateLessThanOrEqualTo(Integer value) {
            addCriterion("state <=", value, "state");
            return (Criteria) this;
        }

        public Criteria andStateIn(List<Integer> values) {
            addCriterion("state in", values, "state");
            return (Criteria) this;
        }

        public Criteria andStateNotIn(List<Integer> values) {
            addCriterion("state not in", values, "state");
            return (Criteria) this;
        }

        public Criteria andStateBetween(Integer value1, Integer value2) {
            addCriterion("state between", value1, value2, "state");
            return (Criteria) this;
        }

        public Criteria andStateNotBetween(Integer value1, Integer value2) {
            addCriterion("state not between", value1, value2, "state");
            return (Criteria) this;
        }

        public Criteria andRemarkIsNull() {
            addCriterion("remark is null");
            return (Criteria) this;
        }

        public Criteria andRemarkIsNotNull() {
            addCriterion("remark is not null");
            return (Criteria) this;
        }

        public Criteria andRemarkEqualTo(String value) {
            addCriterion("remark =", value, "remark");
            return (Criteria) this;
        }

        public Criteria andRemarkNotEqualTo(String value) {
            addCriterion("remark <>", value, "remark");
            return (Criteria) this;
        }

        public Criteria andRemarkGreaterThan(String value) {
            addCriterion("remark >", value, "remark");
            return (Criteria) this;
        }

        public Criteria andRemarkGreaterThanOrEqualTo(String value) {
            addCriterion("remark >=", value, "remark");
            return (Criteria) this;
        }

        public Criteria andRemarkLessThan(String value) {
            addCriterion("remark <", value, "remark");
            return (Criteria) this;
        }

        public Criteria andRemarkLessThanOrEqualTo(String value) {
            addCriterion("remark <=", value, "remark");
            return (Criteria) this;
        }

        public Criteria andRemarkLike(String value) {
            addCriterion("remark like", value, "remark");
            return (Criteria) this;
        }

        public Criteria andRemarkNotLike(String value) {
            addCriterion("remark not like", value, "remark");
            return (Criteria) this;
        }

        public Criteria andRemarkIn(List<String> values) {
            addCriterion("remark in", values, "remark");
            return (Criteria) this;
        }

        public Criteria andRemarkNotIn(List<String> values) {
            addCriterion("remark not in", values, "remark");
            return (Criteria) this;
        }

        public Criteria andRemarkBetween(String value1, String value2) {
            addCriterion("remark between", value1, value2, "remark");
            return (Criteria) this;
        }

        public Criteria andRemarkNotBetween(String value1, String value2) {
            addCriterion("remark not between", value1, value2, "remark");
            return (Criteria) this;
        }
    }

    public static class Criteria extends GeneratedCriteria {

        protected Criteria() {
            super();
        }
    }

    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}